package com.ssy.lingxi.member.merchant.service.web;

import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.member.merchant.model.vo.maintenance.request.*;
import com.ssy.lingxi.member.merchant.model.vo.maintenance.response.MemberUserGetVO;
import com.ssy.lingxi.member.merchant.model.vo.maintenance.response.MemberUserQueryVO;
import org.springframework.http.HttpHeaders;

/**
 * 会员能力 - 会员下属用户服务接口
 * @author 万宁
 * @version 2.0.0
 * @date 2020-06-29
 */
public interface IMemberAbilityUserService {

    /**
     * 新增用户
     * @param headers HttpHeaders信息
     * @param addVO 接口参数
     * @return 操作结果
     */
    Wrapper<Void> addMemberUser(HttpHeaders headers, MemberUserAddVO addVO);

    /**
     * 查询用户信息
     * @param headers HttpHeaders信息
     * @param idVO 接口参数
     * @return 操作结果
     */
    Wrapper<MemberUserGetVO> getMemberUser(HttpHeaders headers, MemberUserIdVO idVO);

    /**
     * 更新用户
     * @param headers HttpHeaders信息
     * @param updateVO 接口参数
     * @return 操作结果
     */
    Wrapper<Void> updateMemberUser(HttpHeaders headers, MemberUserUpdateVO updateVO);

    /**
     * 删除用户
     * @param headers HttpHeaders信息
     * @param idVO 接口参数
     * @return 操作结果
     */
    Wrapper<Void> deleteMemberUser(HttpHeaders headers, MemberUserIdVO idVO);

    /**
     * 更改用户状态
     * @param headers HttpHeaders信息
     * @param statusVO 接口参数
     * @return 操作结果
     */
    Wrapper<Void> updateMemberUserStatus(HttpHeaders headers, MemberUserUpdateStatusVO statusVO);

    /**
     * 分页查询用户
     * @param headers HttpHeaders信息
     * @param pageVO 接口参数
     * @return 操作结果
     */
    Wrapper<PageData<MemberUserQueryVO>> pageMemberUser(HttpHeaders headers, PageQueryMemberUserVO pageVO);


}
